Remote computing systems enable users to access resources hosted by remote computers. In these systems the essential components are the client and the server. The sever in this system executes programs and transmits signals indicative of a user interface to clients that connect by sending signals over a network that can conform to a communication protocol such as the TCP/IP protocol. Each connecting client is provided a session, e.g., an execution environment that includes a set of resources. Each client can transmit signals indicative of user input to the server and the server can apply the user input to the appropriate session.
Typically, an entity such as a business or educational institution will purchase the hardware and/or software to effectuate the system and one or more licenses from a service provider. Once the system is up and running, the terminal server can be configured to receive connection requests and generate as many sessions as there are licenses. Thus, when an entity implements a remote computing system a decision need to be made as to how many concurrent users the entity wants to service.
While in most instances this scenario works well it has drawbacks. For example, the price of a license may be too high for some entities and a decision to forgo remote computing services may be made. In this situation an entity may be willing to purchase licenses at a reduced fee that are associated with reduced levels of service. Or in another situation an entity may want to purchase a lot of licenses associated with a reduced level of service and a few associated with a high level of service. Currently however administrators of the terminal servers have the power to enable or disable features as they please and a service provider can not sell licenses associated with a reduced service level (since an administrator can just change the level). Other drawbacks of the current scenario include the inability to build a business model around selling licenses directly to users and allowing them to connect to a terminal server for every day use. For example, some users may not want to deal with setting up a computer system or hiring an administrator to configure group policies for a terminal server. These users may wish to simply pay a monthly fee a certain level of service and let the service provider take care of maintaining the computer system, e.g., applying patches, installing programs, scanning for viruses, etc. In this example the user could purchase a terminal or a computer with a lightweight operating system and use the terminal server to run their programs.